package com.ruoyi.system.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.entity.SysDept;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author lwq
 * @ClassName SysDeptVo.java
 * @Description //TODO $
 * @createTime 2023-06-13 16:52
 */
@ApiModel(value = "SysDeptVo",description="企业诊断列表数据")
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper=false)
public class SysDeptVo {


    /** 部门ID */

    private Long deptId;

    /** 父部门ID */
    private Long parentId;

    /** 祖级列表 */
    private String ancestors;

    /** 部门名称 */
    @Excel(name = "公司名称")
    @ApiModelProperty(name="deptName", value="名称")
    @NotBlank(message = "部门名称不能为空")
    @Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符")
    private String deptName;

    /** 显示顺序 */
    @Excel(name = "显示顺序")
    @NotNull(message = "显示顺序不能为空")
    @ApiModelProperty(name="orderNum", value="显示顺序")
    private Integer orderNum;

    /** 负责人 */
    @Excel(name = "负责人")
    @ApiModelProperty(name="leader", value="负责人")
    private String leader;

    /** 联系电话 */
    @Excel(name = "负责人电话")
    @ApiModelProperty(name="phone", value="联系电话")
    @Size(min = 0, max = 12, message = "联系电话长度不能超过11个字符")
    private String phone;

    /** 邮箱 */
    @Excel(name = "负责人邮箱")
    @ApiModelProperty(name="email", value="邮箱")
    @Email(message = "邮箱格式不正确")
    @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
    private String email;

    /** 部门状态:0正常,1停用 */
    @Excel(name = "公司状态", readConverterExp = "0=正常,1=停用")
    @ApiModelProperty(name="status", value="状态")
    private String status;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;


    /** 标签（0-企业，1-服务商） */
    @Excel(name = "标签", readConverterExp = "0=企业，1=服务商")
    @ApiModelProperty(name="deptTag", value="标签（0=企业，1=服务商）")
    private String deptTag;


    /** 诊断状态（0未开始 1 开始） */
    @Excel(name = "诊断状态", readConverterExp = "0未开始 1 开始")
    @ApiModelProperty(name="diagnoseStatus", value="诊断状态")
    private String diagnoseStatus;

    /**
     * 诊断进度
     */
    @Size(max = 200, message = "最多输入200位字符")
    @ApiModelProperty(name = "diagnosePlan", value = "诊断进度（json）")
    private String diagnosePlan;

    /**
     * 测评状态（0 未完成  1 已完成）
     */
    @ApiModelProperty(name = "testStatus", value = "测评状态（0 未完成  1 已完成）")
    private String testStatus;

    /**
     * 组长Id
     */
    @ApiModelProperty(name = "leaderId", value = "组长Id")
    private Long leaderId;

    /**
     * 组长姓名
     */
    @ApiModelProperty(name = "leaderName", value = "组长姓名")
    private String leaderName;

    /**
     * 组长手机号
     */
    @ApiModelProperty(name = "leaderPhone", value = "组长手机号")
    private String leaderPhone;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
}
